AWS ParallelCluster 管理コマンドのインストールとバージョン管理
- AWS ParallelClusterはAWSがサポートするHPCクラスターの管理ツールです。
- クラスターを作成、管理するためのコマンド
pcluster
のインストール手順を紹介します。 pcluster
コマンドのバージョン管理も合わせて紹介します。
バージョン管理する意味あるの?
pcluster
コマンドのバージョン = 作成、管理できるAWS ParallelClusterのバージョンになります。
例えば新バージョンがリリースされ最新のAWS ParallelClusterを作成する場合、pcluster
のコマンドのバージョンをアップグレードするするところから始まります。難点は古いバージョンのpcluster
コマンドで作成済みのクラスター環境があった場合、新しいバージョンのコマンドから古いバージョンのクラスターを管理することができません。今後の運用を考えると任意のバージョンでpcluster
コマンドを利用できる環境を作った方が良いでしょう。
2021/7/15追記ParallelCluster 2.9の頃から下位バージョンのクラスターの削除はできるようになったため、以前と比べると完全に下位互換がないわけではなくなっております。
実行環境
Amazon Linux2にpcluster
コマンドをインストールします。
$ cat /etc/system-release Amazon Linux release 2 (Karoo) $ /opt/aws/bin/ec2-metadata | grep ^ami-id ami-id: ami-0cc75a8978fbbc969
pclusterコマンドのインストール
公式のドキュメントにはParallelClusterのインストールに仮想環境を利用することが推奨と書かれています。ParallelCluster独自のバージョン管理機能があるわけではなく、Pythonのvenv
を利用しバージョンを管理するだけです。それではvenv
で環境を分けて2つのバージョンのpcluster
コマンドをインストールします。
AWS ParallelCluster のインストール - AWS ParallelCluster
Python3インストール
まず、Python3をインストールします。
$ sudo yum install python3 -y $ python3 -V Python 3.7.8
最新版pclusterコマンドインストール
ここではホームディレクトリをカレントディレクトリとして作業をはじめます。
$ pwd /home/ec2-user
venv
を利用し仮想環境を作成します。ディレクトリの名(pcluster281
)は任意です。今現在のParallelClusterの最新バージョンに合わせて名前を決めました。
pip3 install aws-parallelcluster
でpcluster
コマンドのインストールは完了です。
$ python3 -m venv pcluster281 $ cd pcluster281/ $ source ./bin/activate $ pip3 install aws-parallelcluster $ pcluster version 2.8.1
仮想環境を抜けて次に別のバージョンのpcluster
コマンドをインストールしてみます。
$ deactivate
pclusterバージョン指定インストール
ここでもホームディレクトリをカレントディレクトリとして作業をはじめます。ひとつ前のバージョンを試しにインストールします。
$ pwd /home/ec2-user
venv
を利用し仮想環境を作成します。ディレクトリの名はpcluster27
としました。
pip3 install aws-parallelcluster==[version]
で指定バージョンのpcluster
コマンドをインストールできます。
$ python3 -m venv pcluster27 $ cd pcluster27 $ source ./bin/activate $ pip3 install aws-parallelcluster==2.7 $ pcluster version 2.7.0
仮想環境を抜けます。
$ deactivate
バージョンの切り替え方法
ディレクトリで環境分けてpcluster
コマンドをインストールしました。
利用したいpcluster
のバージョンのディレクトリを指定してactivate
します。
source ~/[directory]/bin/activate
$ tree -L 1 . ├── pcluster27 └── pcluster281 2 directories, 0 files
2.8.1を使う場合
$ source ~/pcluster281/bin/activate $ pcluster version 2.8.1
2.7を使う場合
$ source ~/pcluster27/bin/activate $ pcluster version 2.7
ログイン時に指定のバージョンをアクティベート
毎度activate
を打つのは少々手間です。普段を使うバージョンを.bashrc
に書いておくとログイン後にアクティベートされた状態になります。
この例の場合ですとログイン時にpcluster 2.8.1
のバージョンがすぐ使える状態です。
$ echo 'source ~/pcluster281/bin/activate' >> ~/.bashrc
$ cat ~/.bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= # User specific aliases and functions source ~/pcluster281/bin/activate
IAMロール・ポリシー
クラスターを作成、管理するためには様々なリソースへアクセスする権限が必要になります。 pclusterコマンドのバージョンに応じたIAMポリシーを作成します。 最新のバージョンをお使いの場合はドキュメント通りIAMポリシーを作成すれば問題ありません。 過去のバージョンを使う場合はドキュメントの履歴からその当時のIAMポリシーを確認して作成した方が無難です。
AWS Identity and Access Management roles in AWS ParallelCluster - AWS ParallelCluster
おわりに
ひと手間増えますが推奨する形式です。pcluster
コマンドは仮想環境で分けてバージョンを管理しておきましょう。
以上、コンサル部の大村@網走でした。